#ifndef __FRACTAL_GL_H
#define __FRACTAL_GL_H

#include "shader.h"

namespace fractals {
	enum Button {
		Left=0x1,
		Right=0x2
	};

	class Fractal {
	public:
		virtual ~Fractal();

		virtual void draw(bool &didClear)=0;
		virtual void resize(unsigned int w, unsigned int h)=0;

		virtual void mouseDown(Button button, int x, int y);
		virtual void mouseMove(int x, int y);
		
		virtual void keyDown(unsigned char key);
		virtual void keyUp(unsigned char key);

		virtual void mouseWheelDown();
		virtual void mouseWheelUp();

		virtual void mouseHover(int x, int y);
	};
}

#endif